#include <tenacitas.tuple_unpacker/unpack_method.h>
#include <iostream>
#include <cstdint>
#include <tuple>
#include <functional>



namespace tenacitas {
    namespace tuple_unpacker {
        class t01 {
        public:
            static void run( ) {
                // std::cout << "\n          t01" << std::endl;
                // a l_a;
                // m3<void (a::*)( int16_t )>( &a::f, std::ref( l_a ), -911 );
            }

        private:
            class a {
            public:
                void f( int16_t p_i ) {
                    std::cout << "p_i = " << p_i << std::endl;
                }
            };

            // template<typename t_class_method>
            // static void m3( t_class_method p_method,
            //                 typename deduce_class<t_class_method>::class_type &
            //                 p_obj,
            //                 int16_t p_i ) {

            //     typedef unpack_method<void, int16_t> unpack_method_type;
            //     typedef std::tuple<int16_t> tuple_type;

            //     tuple_type l_tuple = std::make_tuple( p_i );
            //     unpack_method_type l_unpack;

            //     l_unpack( std::move( l_tuple ), p_method, p_obj );
            // }
        };
    }
}

